package zgrjb.snbq.teach_platform.dto.model;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 出勤申请表 DO
 * 对应数据库表：attend
 * 
 * CREATE TABLE `attend` (
 *     `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '出勤申请ID',
 *     `class_name` VARCHAR(64) DEFAULT NULL COMMENT '班级名称',
 *     `class_id` BIGINT UNSIGNED NOT NULL COMMENT '班级ID',
 *     `student_id` BIGINT UNSIGNED NOT NULL COMMENT '学生ID',
 *     `student_name` VARCHAR(64) DEFAULT NULL COMMENT '学生姓名',
 *     `student_phone` VARCHAR(16) DEFAULT NULL COMMENT '学生手机号',
 *     `subject` VARCHAR(64) DEFAULT NULL COMMENT '学科',
 *     `allow` INT DEFAULT 0 COMMENT '审批状态：0-待审批，1-通过，-1-拒绝',
 *     `apply_reason` VARCHAR(256) DEFAULT NULL COMMENT '申请原因',
 *     `apply_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '申请时间',
 *     `approve_time` DATETIME DEFAULT NULL COMMENT '审批时间',
 *     `approver_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '审批人ID',
 *     `remark` VARCHAR(256) DEFAULT NULL COMMENT '审批备注',
 *     `status` TINYINT DEFAULT 1 COMMENT '状态：1-正常，0-取消',
 *     `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
 *     `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
 * );
 */

@Data
@TableName("attend")
public class AttendDO {

    /**
     * 出勤申请ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 班级名称
     */
    @TableField("class_name")
    private String className;

    /**
     * 班级ID
     */
    @TableField("class_id")
    private Long classId;

    /**
     * 学生ID
     */
    @TableField("student_id")
    private Long studentId;

    /**
     * 学生姓名
     */
    @TableField("student_name")
    private String studentName;

    /**
     * 学生手机号
     */
    @TableField("student_phone")
    private String studentPhone;

    /**
     * 学科
     */
    private String subject;

    /**
     * 审批状态：0-待审批，1-通过，-1-拒绝
     */
    private Integer allow;

    /**
     * 申请原因
     */
    @TableField("apply_reason")
    private String applyReason;

    /**
     * 申请时间
     */
    @TableField("apply_time")
    private LocalDateTime applyTime;

    /**
     * 审批时间
     */
    @TableField("approve_time")
    private LocalDateTime approveTime;

    /**
     * 审批人ID
     */
    @TableField("approver_id")
    private Long approverId;

    /**
     * 审批备注
     */
    private String remark;

    /**
     * 状态：1-正常，0-取消
     */
    private Integer status;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;
}
